package com.example.drainage.util;

import android.content.Context;

import io.realm.Realm;
import io.realm.RealmConfiguration;

/**
 * Realm单例，用于统一的初始化配置及Realm获取<br>
 * 请确保在Realm初始化后使用此类 ：{@link Realm#init(Context)}
 *
 * @author 创建人 ：guokunhu
 * @version 1.0
 * @package 包名 ：com.augurit.agmobile.patrolcore.common.database
 * @createTime 创建时间 ：2017/10/18
 * @modifyBy 修改人 ：xiejiexin
 * @modifyTime 修改时间 ：2018/04/16
 * @modifyMemo 修改备注：
 */

public class RealmSingleton {

    private static RealmSingleton instance;
    private RealmConfiguration mConfiguration;

    /**
     * 初始化<br>
     * 确保在此之前已初始化Realm： {@link Realm#init(Context)}
     *
     * @param configuration Realm配置
     */
    public void init(RealmConfiguration configuration) {
        mConfiguration = configuration;
    }

    /**
     * 获取实例
     * @return 实例
     */
    public static RealmSingleton getInstance(){
        if(instance == null){
            synchronized (RealmSingleton.class){
                if(instance == null){
                    instance = new RealmSingleton();
                }
            }
        }
        return instance;
    }

    /**
     * 获取Realm实例<br>
     * 确保在此之前已初始化Realm： {@link Realm#init(Context)}
     */
    public Realm getRealm(){
        return Realm.getInstance(mConfiguration);
    }
}
